<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="mserus.ru" elementFormDefault="qualified" targetNamespace="mserus.ru" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="GetUserSecurityDetails">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="DomainLoginName" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserSecurityDetailsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="GetUserSecurityDetailsResult" type="tns:UserSecurityDetails" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="UserSecurityDetails">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="User" type="tns:User" />
      <xs:element minOccurs="0" maxOccurs="1" name="Role" type="tns:RoleEntity" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="User">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="Id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="FIO" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Email" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Phone" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Login" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Pass" type="xs:string" />
          <xs:element minOccurs="1" maxOccurs="1" name="RoleId" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="Enabled" type="xs:boolean" />
          <xs:element minOccurs="1" maxOccurs="1" name="Deleted" type="xs:boolean" />
          <xs:element minOccurs="0" maxOccurs="1" name="RoleReference" type="tns:EntityReferenceOfRole" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="EntityObject" abstract="true">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:StructuralObject">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="EntityKey" type="tns:EntityKey" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="StructuralObject" abstract="true" />
  <xs:complexType name="EntityKey">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="EntitySetName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="EntityContainerName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="EntityKeyValues" type="tns:ArrayOfEntityKeyMember" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfEntityKeyMember">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="EntityKeyMember" nillable="true" type="tns:EntityKeyMember" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="EntityKeyMember">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Key" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Value" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MVCAction">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="Id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Menu">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="Id" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="ParentId" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="ToolTip" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Menu2Reference" type="tns:EntityReferenceOfMenu" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="EntityReferenceOfMenu">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:EntityReference" />
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="EntityReference" abstract="true">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:RelatedEnd">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="EntityKey" type="tns:EntityKey" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="RelatedEnd" abstract="true" />
  <xs:complexType name="EntityReferenceOfRole">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:EntityReference" />
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="State">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="Id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Color" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="GroupPermission">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="Id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Permission">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="Id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Role">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="Id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string" />
          <xs:element minOccurs="1" maxOccurs="1" name="Deleted" type="xs:boolean" />
          <xs:element minOccurs="1" maxOccurs="1" name="OnlyIts" type="xs:boolean" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="RoleEntity">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Role" type="tns:Role" />
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="tns:ArrayOfPermissionEntity" />
      <xs:element minOccurs="0" maxOccurs="1" name="States" type="tns:ArrayOfState" />
      <xs:element minOccurs="0" maxOccurs="1" name="Menus" type="tns:ArrayOfMenu" />
      <xs:element minOccurs="0" maxOccurs="1" name="MVCActions" type="tns:ArrayOfMVCAction" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfPermissionEntity">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PermissionEntity" nillable="true" type="tns:PermissionEntity" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PermissionEntity">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Permission" type="tns:Permission" />
      <xs:element minOccurs="0" maxOccurs="1" name="GroupPermissions" type="tns:ArrayOfGroupPermission" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfGroupPermission">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="GroupPermission" nillable="true" type="tns:GroupPermission" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfState">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="State" nillable="true" type="tns:State" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfMenu">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Menu" nillable="true" type="tns:Menu" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfMVCAction">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="MVCAction" nillable="true" type="tns:MVCAction" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="AuthenticateUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userName" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="hashPassword" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="AuthenticateUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="AuthenticateUserResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="MVCActionsByPermissionName">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="permissionName" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="MVCActionsByPermissionNameResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="MVCActionsByPermissionNameResult" type="tns:ArrayOfMVCAction" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="MVCActionsByPermissionId">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="permissionId" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="MVCActionsByPermissionIdResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="MVCActionsByPermissionIdResult" type="tns:ArrayOfMVCAction" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>